package com.spsyry.pay.order;

import java.util.HashMap;
import java.util.Map;

public class WeiXinUtilsTest {

    /**
     * 下单接口
     */
    public static String payOrder(String orderId) throws Exception {
        HashMap<String, String> map = new HashMap<>();

        //公众账号ID
        map.put("appid",Constants.APP_ID);
        //商户号
        map.put("mch_id",Constants.MCH_ID);
        //随机字符串
        map.put("nonce_str",CommUtil.getNonce_str());
        //商品描述
        map.put("body","专高六杨柯");
        //商户订单号
        map.put("out_trade_no",orderId);
        //标价金额
        map.put("total_fee","1");
        //终端IP
        map.put("spbill_create_ip","127.0.0.1");
        //通知地址
        map.put("notify_url",Constants.NOTIFY_URL);
        //交易类型
        map.put("trade_type","NATIVE");
        //签名
        map.put("sign",CommUtil2210a.generateSignature(map, Constants.API_KEY, "HMACSHA256"));
        //签名类型
        map.put("sign_type","HMAC-SHA256");

        String mapToXml = XMLUtil.mapToXml(map);
        //将前面构建的包含订单信息的 map 集合转换为 XML 格式的字符串
        String postData = HttpUtil.postData(Constants.UFDODER_URL, mapToXml);
        //这是实际与微信支付服务器进行通信的步骤，将我们的订单信息提交给微信支付系统
        System.out.println(postData);
        //作用：主要用于调试，查看服务器返回的原始数据
        Map<String, String> stringMap = XMLUtil.doXMLParse(postData);
        //把 XML 格式转换为更易于操作的 Map，方便后续获取其中的字段值
        String codeUrl = stringMap.get("code_url");
        //"code_url" 是微信支付返回的二维码链接，用于生成支付二维码

        System.out.println("------------------>....");
        System.out.println(codeUrl);
        System.out.println("------------------>....");

        return codeUrl;
    }

    public static void main(String[] args) throws Exception {
        WeiXinUtil.payOrder(WeiXinUtil.ORDER_ID);
//        WeiXinUtil.queryOrder(WeiXinUtil.ORDER_ID);
    }

}
